﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace PSI
{
    public class S_EDG1a
    {
        String login1;
        String haslo1;

        psi_dane_edg1 nowyEDG1 = new psi_dane_edg1();

        psi_adre aOrgan = new psi_adre();
        psi_adre aUS = new psi_adre();
        psi_adre aPopUS = new psi_adre();
        psi_adre aUStat = new psi_adre();
        psi_adre aZUS = new psi_adre();
        psi_adre aZamieszkanie = new psi_adre();
        psi_adre aZameldowanie = new psi_adre();
        psi_adre aWykDzialalnosc = new psi_adre();
        psi_adre aKoresp = new psi_adre();
        psi_adre aDokumentacja = new psi_adre();

        psi_dane_osobowe osoba = new psi_dane_osobowe();
        psi_obywatelstwo obyw = new psi_obywatelstwo();
        psi_kontakt kontakt = new psi_kontakt();
        psi_dane_edg1 edg = new psi_dane_edg1();
        List<psi_adre> listaAdresow = new List<psi_adre>();




        public S_EDG1a(String idFirm, String[] adresOrgan, String[] adresUS, String[] adresPopUS, String[] adresUrzadStat, String[] adresZUS, String[] adresZamiesz, String[] adresZameldowania, String[] adresWykDzialalnosci, String[] adresKoresp, String[] adresPrzDokumen, String[] daneOsob, String[] obywatel, String[] kontaktowe, String[] daneEdg1 )
        {
            login1 = idFirm;

            listaAdresow.Add(aOrgan);
            listaAdresow.Add(aUS);
            listaAdresow.Add(aPopUS);
            listaAdresow.Add(aUStat);
            listaAdresow.Add(aZUS);
            listaAdresow.Add(aZamieszkanie);
            listaAdresow.Add(aZameldowanie);
            listaAdresow.Add(aWykDzialalnosc);
            listaAdresow.Add(aKoresp);
            listaAdresow.Add(aDokumentacja);

            aOrgan.wojewodztwo = adresOrgan[0];
            aOrgan.powiat = adresOrgan[1];
            aOrgan.gmina = adresOrgan[2];
            aOrgan.miejscowosc = adresOrgan[3];
            aOrgan.ulica = adresOrgan[4];
            aOrgan.nrDomu = adresOrgan[5];
            aOrgan.kodPocztowy = adresOrgan[6];
            aOrgan.poczta = adresOrgan[7];


            aUS.wojewodztwo = adresUS[0];
            aUS.powiat = adresUS[1];
            aUS.gmina = adresUS[2];
            aUS.miejscowosc = adresUS[3];
            aUS.ulica = adresUS[4];
            aUS.nrDomu = adresUS[5];
            aUS.kodPocztowy = adresUS[6];
            aUS.poczta = adresUS[7];


            aPopUS.wojewodztwo = adresPopUS[0];
            aPopUS.powiat = adresPopUS[1];
            aPopUS.gmina = adresPopUS[2];
            aPopUS.miejscowosc = adresPopUS[3];
            aPopUS.ulica = adresPopUS[4];
            aPopUS.nrDomu = adresPopUS[5];
            aPopUS.kodPocztowy = adresPopUS[6];
            aPopUS.poczta = adresPopUS[7];


            aUStat.wojewodztwo = adresUrzadStat[0];
            aUStat.powiat = adresUrzadStat[1];
            aUStat.gmina = adresUrzadStat[2];
            aUStat.miejscowosc = adresUrzadStat[3];
            aUStat.ulica = adresUrzadStat[4];
            aUStat.nrDomu = adresUrzadStat[5];
            aUStat.kodPocztowy = adresUrzadStat[6];
            aUStat.poczta = adresUrzadStat[7];


            aZUS.wojewodztwo = adresZUS[0];
            aZUS.powiat = adresZUS[1];
            aZUS.gmina = adresZUS[2];
            aZUS.miejscowosc = adresZUS[3];
            aZUS.ulica = adresZUS[4];
            aZUS.nrDomu = adresZUS[5];
            aZUS.kodPocztowy = adresZUS[6];
            aZUS.poczta = adresZUS[7];



            aZamieszkanie.wojewodztwo = adresZamiesz[0];
            aZamieszkanie.powiat = adresZamiesz[1];
            aZamieszkanie.gmina = adresZamiesz[2];
            aZamieszkanie.miejscowosc = adresZamiesz[3];
            aZamieszkanie.ulica = adresZamiesz[4];
            aZamieszkanie.nrDomu = adresZamiesz[5];
            aZamieszkanie.nrLokalu = adresZamiesz[6];
            aZamieszkanie.kodPocztowy = adresZamiesz[7];
            aZamieszkanie.poczta = adresZamiesz[8];
            aZamieszkanie.nietypowyOpis = adresZamiesz[9];


            aZameldowanie.wojewodztwo = adresZameldowania[0];
            aZameldowanie.powiat = adresZameldowania[1];
            aZameldowanie.gmina = adresZameldowania[2];
            aZameldowanie.miejscowosc = adresZameldowania[3];
            aZameldowanie.ulica = adresZameldowania[4];
            aZameldowanie.nrDomu = adresZameldowania[5];
            aZameldowanie.nrLokalu = adresZameldowania[6];
            aZameldowanie.kodPocztowy = adresZameldowania[7];
            aZameldowanie.poczta = adresZameldowania[8];
            aZameldowanie.nietypowyOpis = adresZameldowania[9];


            aWykDzialalnosc.wojewodztwo = adresWykDzialalnosci[0];
            aWykDzialalnosc.powiat = adresWykDzialalnosci[1];
            aWykDzialalnosc.gmina = adresWykDzialalnosci[2];
            aWykDzialalnosc.miejscowosc = adresWykDzialalnosci[3];
            aWykDzialalnosc.ulica = adresWykDzialalnosci[4];
            aWykDzialalnosc.nrDomu = adresWykDzialalnosci[5];
            aWykDzialalnosc.nrLokalu = adresWykDzialalnosci[6];
            aWykDzialalnosc.kodPocztowy = adresWykDzialalnosci[7];
            aWykDzialalnosc.poczta = adresWykDzialalnosci[8];
            aWykDzialalnosc.nietypowyOpis = adresWykDzialalnosci[9];


            aKoresp.wojewodztwo = adresKoresp[0];
            aKoresp.powiat = adresKoresp[1];
            aKoresp.gmina = adresKoresp[2];
            aKoresp.miejscowosc = adresKoresp[3];
            aKoresp.ulica = adresKoresp[4];
            aKoresp.nrDomu = adresKoresp[5];
            aKoresp.nrLokalu = adresKoresp[6];
            aKoresp.kodPocztowy = adresKoresp[7];
            aKoresp.poczta = adresKoresp[8];
            aKoresp.nietypowyOpis = adresKoresp[9];


            aDokumentacja.wojewodztwo = adresPrzDokumen[0];
            aDokumentacja.powiat = adresPrzDokumen[1];
            aDokumentacja.gmina = adresPrzDokumen[2];
            aDokumentacja.miejscowosc = adresPrzDokumen[3];
            aDokumentacja.ulica = adresPrzDokumen[4];
            aDokumentacja.nrDomu = adresPrzDokumen[5];
            aDokumentacja.nrLokalu = adresPrzDokumen[6];
            aDokumentacja.kodPocztowy = adresPrzDokumen[7];
            aDokumentacja.poczta = adresPrzDokumen[8];
            aDokumentacja.nietypowyOpis = adresPrzDokumen[9];


            osoba.plec = daneOsob[0].ToCharArray()[0];
            osoba.rodzdoktozsamosci = daneOsob[1];
            osoba.seriadoktozsamosci = daneOsob[2];
            osoba.numerdoktozsamosci = daneOsob[3];
            osoba.regon = Int32.Parse(daneOsob[6]);
            osoba.pesel = daneOsob[4];
            osoba.nip = daneOsob[5];

            osoba.nazwisko = daneOsob[7];
            osoba.imie1 = daneOsob[8];
            osoba.imie2 = daneOsob[9];
            osoba.nazwiskorodowe = daneOsob[10];
            osoba.imiematki = daneOsob[11];
            osoba.imieojca = daneOsob[12];
            osoba.miejsceur = daneOsob[13];
            osoba.dataur = DateTime.ParseExact(daneOsob[14], "dd-MM-yyyy", null);

            osoba.psi_adre = aKoresp;
            osoba.psi_adre1 = aZamieszkanie;
            osoba.psi_adre2 = aZameldowanie;

            obyw.obywatelstwo = obywatel[0];

            osoba.psi_obywatelstwo = obyw;



            edg.nazwaorganuewidencyjnego = daneEdg1[0];
            edg.nazwaurzeduskarbowego = daneEdg1[1];
            edg.nazwazus = daneEdg1[3];
            edg.oznaczenieprzedsiebiorcy = daneEdg1[4];
            edg.nazwaskrocona = daneEdg1[5];
            edg.datarozpdzialalnosci = DateTime.ParseExact(daneEdg1[6], "dd-MM-yyyy", null);
            edg.przewidywanaliczbapracujacych = Int32.Parse(daneEdg1[7]);
            edg.przewidywanaliczbazatrudnionych = Int32.Parse(daneEdg1[8]);
            edg.datapowstaniaobowiazkuplaceniazus = DateTime.ParseExact(daneEdg1[9], "dd-MM-yyyy", null);
            edg.nazwajednostkikrus = daneEdg1[10];
            edg.kontynuacjaubezpieczeniarolnikow = daneEdg1[11];
            edg.pozarolniczadzialalnoscgosp = daneEdg1[12];
            edg.wspolpracaPrzyProwadzeniuPozarolniczejDzialGosp = daneEdg1[13];
            edg.zaswiadczenieUSkrbKwotaPodatekZaRolniczaDzialGosp = daneEdg1[14];
            edg.zalacznikZaswPodatekPozarolniczejDzialGosp = daneEdg1[15];
            edg.biuroRachunkoweNazwa = daneEdg1[16];
            edg.biuroRachunkoweNIP = daneEdg1[17];
            edg.rodzajDokumentacjiRachunkowej = daneEdg1[18];
            edg.zakladPracyChronionej = daneEdg1[19];
            edg.zagranicznePrzedsiebiorstwoDrobnejWytworczosci = daneEdg1[20];
            edg.dzialalnoscGospWylacznieWformieSpolkiCywilnej = daneEdg1[21];
            edg.zalacznikEDGRDilosc = Int32.Parse(daneEdg1[22]);
            edg.zalacznikEDGRWilosc = Int32.Parse(daneEdg1[23]);
            edg.zalacznikEDGRBilosc = Int32.Parse(daneEdg1[24]);
            edg.pelnomocnictwailosc = Int32.Parse(daneEdg1[25]);



            kontakt.telefon = kontaktowe[0];
            kontakt.email = kontaktowe[1];
            kontakt.fax = kontaktowe[2];
            kontakt.www = kontaktowe[3];

            zapisDoBazy();
        }

        public bool zapisDoBazy()
        {

            LINQDataContext bd = new LINQDataContext();

            var idFirma = from x in bd.psi_danefirmies
                          where x.firma_id == Int32.Parse(login1)
                          select x;
            

         //   psi_danefirmy firma;
            psi_danefirmy firma=new psi_danefirmy();
            foreach (var f in idFirma)
                 firma = f;




            edg.psi_adre = aOrgan;
            edg.psi_adre1 = aDokumentacja;
            edg.psi_adre2 = aWykDzialalnosc;
            edg.psi_adre3 = aZUS;
            edg.psi_adre4 = aUS;
            edg.psi_adre5 = aUStat;
            edg.psi_adre6 = aPopUS;


// - organ ewidencyjny +edg1  		        	-psi_adres
//- urzad skarbowy +edg1		        		-psi_adres4
//- poprzedni urzad skarbowy   	        		-psi_adres6
//- urzad statystyczny			            	-psi_adres5
//- zus +edg1    				            	-psi_adres3
//- adres zamieszkania +daneOsobowe			-psi_adres1
//- zdres zameldowania +daneOsobowe			-psi_adres2
//- adres wyk.dzialalnosci gospodarczej +edg1    -psi_adres2
//- adres do korespondencji  +daneOsobowe 	-psi_adres
//- adres przechowywania dokumentacji +edg1   	-psi_adres1

             firma.psi_kontakt=kontakt;

             edg.psi_danefirmy = firma;

            edg.psi_dane_osobowe = osoba;




        //    kontakt.psi_danefirmies





      //      bd.psi_danefirmies.InsertOnSubmit(firma);
            bd.psi_dane_osobowes.InsertOnSubmit(osoba);
            bd.psi_dane_edg1s.InsertOnSubmit(edg);
            bd.psi_adres.InsertAllOnSubmit(listaAdresow);
            bd.SubmitChanges();
            //bd.psi_danefirmies.InsertOnSubmit(nowaFirma);

            return true;

        }
    }
}